﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{
    class Vitor : Scene
    {
            Player player1;
            Texture2D jogadorT, bolaT, starT, gameOverT;
            Rectangle jogadorR, bolaR, starR, gameOverR;
            Random moveRa = new Random();
            Vector2 velocidade;



            //int altura, largura;
            //string name;
            //float shotsFired;
            SpriteFont Font;


            //float direcao = 1;

            public Vitor()
                : base()
            {



            }

            public override void Load(ContentManager Content)
            {

                

                

                jogadorT = Content.Load<Texture2D>("Tails1");
                jogadorR = new Rectangle(500, 100, 50, 50);


                bolaT = Content.Load<Texture2D>("bola2");
                bolaR = new Rectangle(100, 100, 25, 25);

                starT = Content.Load<Texture2D>("star");
                starR = new Rectangle(75, 187, 30, 30);


                gameOverT = Content.Load<Texture2D>("images");
                gameOverR = new Rectangle(0, 0, 800, 600);

                velocidade.X = 1f;
                velocidade.Y = 1f;

                Font = Content.Load<SpriteFont>("HUD");

            }
            public override void Update(GameTime gameTime)
            {
                


                if (jogadorR.Intersects(starR))
                {
                    RandomLoad();
                }
                bolaR.X = (bolaR.X + (int)velocidade.X);
                bolaR.Y = (bolaR.Y + (int)velocidade.Y);

               


                if (bolaR.X <= 0)
                    velocidade.X = -velocidade.X;
                else if (bolaR.X + bolaT.Width >= 800)
                    velocidade.X = -velocidade.X;

                else if (bolaR.Y <= 0)
                    velocidade.Y = -velocidade.Y;
                else if (bolaR.Y + bolaT.Height >= 600)
                    velocidade.Y = -velocidade.Y;





                if (Keyboard.GetState().IsKeyDown(Keys.Right))
                    jogadorR.X += 5;
                else if (Keyboard.GetState().IsKeyDown(Keys.Left))
                    jogadorR.X -= 5;

                if (Keyboard.GetState().IsKeyDown(Keys.Up))
                    jogadorR.Y -= 5;
                else if (Keyboard.GetState().IsKeyDown(Keys.Down))
                    jogadorR.Y += 5;


                if (jogadorR.X <= 0)
                    jogadorR.X = 0;
                if(jogadorR.X + jogadorT.Width >= 800)
                    jogadorR.X = 800 - jogadorT.Width;

                if (jogadorR.Y<= 0)
                    jogadorR.Y = 0;
                if (jogadorR.Y + jogadorT.Height >= 600)
                    jogadorR.Y = 600 - jogadorT.Height;



                //shotsFired += player1.Fire(gameTime);
            }
            
        
        
            void RandomLoad()
            {

                

                int attRandom = moveRa.Next(0, 4);
                if (attRandom == 0)
                {
                    velocidade.X = (velocidade.X + 2);
                    velocidade.Y = (velocidade.Y + 2);
                }

                if (attRandom == 1)
                {
                    velocidade.X = (-velocidade.X - 3);
                    velocidade.Y = (-velocidade.Y - 3);
                }

                if (attRandom == 2)
                {
                    velocidade.X = velocidade.X + 1;
                    velocidade.Y = velocidade.Y + 1;
                }

                if (attRandom == 3)
                {
                    bolaR.X = 20;
                    bolaR.Y = 50;
                    velocidade.X = velocidade.X * 3;
                    velocidade.Y = -velocidade.Y * 3;
                }

                if (attRandom == 4)
                {
                    bolaR.X = 20;
                    bolaR.Y = 50;
                    velocidade.X = velocidade.X * 3;
                    velocidade.Y = -velocidade.Y * 2;
                }



                int posY = moveRa.Next(1, 10);
                if (posY == 1)
                {
                    starR.X = 725;
                    starR.Y = 226;
                }

                if (posY == 2)
                {
                    starR.X = 547;
                    starR.Y = 82;
                }

                if (posY == 3)
                {
                    starR.X = 588;
                    starR.Y = 369;
                }

                if (posY == 4)
                {
                    starR.X = 746;
                    starR.Y = 56;
                }

                if (posY == 5)
                {
                    starR.X = 296;
                    starR.Y = 111;
                }

                if (posY == 6)
                {
                    starR.X = 575;
                    starR.Y = 65;
                }

                if (posY == 7)
                {
                    starR.X = 273;
                    starR.Y = 253;
                }

                if (posY == 8)
                {
                    starR.X = 610;
                    starR.Y = 273;
                }

                if (posY == 9)
                {
                    starR.X = 535;
                    starR.Y = 280;
                }

                if (posY == 10)
                {
                    starR.X = 557;
                    starR.Y = 8;
                }
            }




            public override void Draw(SpriteBatch spriteBatch, GameTime gameTime)
            {

                //player1.Draw(spriteBatch);
                if (jogadorR.Intersects(bolaR))
                {
                    jogadorR.X = 0;
                    jogadorR.Y = 0;
                    bolaR.X = 0;
                    bolaR.Y = 0;
                    velocidade.X = 0;
                    velocidade.Y = 0;
                    spriteBatch.Draw(gameOverT, gameOverR, Color.White); 
                }
                spriteBatch.Draw(jogadorT, jogadorR, Color.White);
                spriteBatch.Draw(bolaT, bolaR, Color.White);
                spriteBatch.Draw(starT, starR, Color.White);
                

            }
        }
    }
